[INFO] cloning repository https://github.com/YoitzWolf/carrot_drawer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/YoitzWolf/carrot_drawer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYoitzWolf%2Fcarrot_drawer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYoitzWolf%2Fcarrot_drawer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 980303982d979a0bb927b7fe54e689163ddd5ae6
[INFO] checking YoitzWolf/carrot_drawer against master#89a99936d9e76a50e8df622e7242190841fd871b for pr-156160
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYoitzWolf%2Fcarrot_drawer" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/YoitzWolf/carrot_drawer
[INFO] finished tweaking git repo https://github.com/YoitzWolf/carrot_drawer
[INFO] tweaked toml for git repo https://github.com/YoitzWolf/carrot_drawer written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/YoitzWolf/carrot_drawer on toolchain 89a99936d9e76a50e8df622e7242190841fd871b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/YoitzWolf/carrot_drawer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wgpu-hal v28.0.0
[INFO] [stderr]   Downloaded wgpu-core v28.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca
[INFO] running `Command { std: "docker" "start" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca" "/opt/rustwide/cargo-home/bin/cargo" "+89a99936d9e76a50e8df622e7242190841fd871b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]    Compiling wayland-sys v0.31.8
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling wayland-client v0.31.12
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling naga v28.0.0
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking codespan-reporting v0.12.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]    Compiling wgpu-hal v28.0.0
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stderr]     Checking unicode-ident v1.0.22
[INFO] [stderr]    Compiling wgpu-core v28.0.0
[INFO] [stderr]    Compiling macro_rules_attribute-proc_macro v0.2.2
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]    Compiling wgpu v28.0.0
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking indexmap v2.12.1
[INFO] [stderr]     Checking jiff v0.2.17
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking macro_rules_attribute v0.2.2
[INFO] [stderr]     Checking glam v0.30.10
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling wayland-scanner v0.31.8
[INFO] [stderr]    Compiling wayland-backend v0.3.12
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking ordered-float v5.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking gpu-allocator v0.28.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking wgpu-types v28.0.0
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking wayland-protocols v0.32.10
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.12
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.10
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.10
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v28.0.0
[INFO] [stderr]     Checking carrot v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DeviceId` and `TouchPhase`
[INFO] [stdout]  --> src/app_setup.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::{DeviceId, KeyEvent, MouseScrollDelta, TouchPhase, WindowEvent};
[INFO] [stdout]   |                    ^^^^^^^^                              ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/app_setup.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winit::event_loop::{ActiveEventLoop, ControlFlow};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicContour` and `Contour`
[INFO] [stdout]   --> src/app_setup.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::vis_geometry::contour::{BasicContour, Contour};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::triangulation::triangulate_2d`
[INFO] [stdout]   --> src/app_setup.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::vis_geometry::triangulation::triangulate_2d;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `DMat4`, `Mat3A`, and `Mat3`
[INFO] [stdout]  --> src/core/vis_geometry/contour.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, DMat4, Mat3, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/vis_geometry/contour.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout]     |                                ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout] 147 +     fn box_clone(&self) -> Box<dyn Contour + 'static > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deref` and `RemAssign`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, RemAssign};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{Vec2, Vec3, Vec3Swizzles};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -                     if (x.id == other_id) {
[INFO] [stdout] 60 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                     if (x.id == other_id) {
[INFO] [stdout] 78 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let v = (point_st - point_end);
[INFO] [stdout]    |                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -             let v = (point_st - point_end);
[INFO] [stdout] 96 +             let v = point_st - point_end ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `Affine3A`, and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Affine3A, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contour`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::vis_geometry::{contour, Vertex};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Affine2, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/graphics2d/layer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Mat3A, Mat4};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceId` and `TouchPhase`
[INFO] [stdout]  --> src/app_setup.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::{DeviceId, KeyEvent, MouseScrollDelta, TouchPhase, WindowEvent};
[INFO] [stdout]   |                    ^^^^^^^^                              ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/app_setup.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winit::event_loop::{ActiveEventLoop, ControlFlow};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicContour` and `Contour`
[INFO] [stdout]   --> src/app_setup.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::vis_geometry::contour::{BasicContour, Contour};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::triangulation::triangulate_2d`
[INFO] [stdout]   --> src/app_setup.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::vis_geometry::triangulation::triangulate_2d;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `DMat4`, `Mat3A`, and `Mat3`
[INFO] [stdout]  --> src/core/vis_geometry/contour.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, DMat4, Mat3, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/vis_geometry/contour.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout]     |                                ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout] 147 +     fn box_clone(&self) -> Box<dyn Contour + 'static > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deref` and `RemAssign`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, RemAssign};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{Vec2, Vec3, Vec3Swizzles};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -                     if (x.id == other_id) {
[INFO] [stdout] 60 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                     if (x.id == other_id) {
[INFO] [stdout] 78 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let v = (point_st - point_end);
[INFO] [stdout]    |                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -             let v = (point_st - point_end);
[INFO] [stdout] 96 +             let v = point_st - point_end ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `Affine3A`, and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Affine3A, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contour`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::vis_geometry::{contour, Vertex};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Affine2, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/graphics2d/layer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Mat3A, Mat4};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:77:60
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                                                            ----^^^^^
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]   --> src/app_setup.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/app_setup.rs:116:52
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 delta: MouseScrollDelta::LineDelta(dx, dy),
[INFO] [stdout]     |                                                    ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:77:60
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                                                            ----^^^^^
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]   --> src/app_setup.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/app_setup.rs:116:52
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 delta: MouseScrollDelta::LineDelta(dx, dy),
[INFO] [stdout]     |                                                    ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |mut r, contour| {
[INFO] [stdout]    |              ----^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:90:35
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn apply_transform(&mut self, matrix: &Mat4) {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn rotate(&mut self, angle: f32) {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |mut r, contour| {
[INFO] [stdout]    |              ----^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Engine` is never constructed
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Engine {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_layers`, `add_layer`, `remove_layer`, `get_layer`, and `get_layer_mut` are never used
[INFO] [stdout]   --> src/core/graphics2d/engine.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Engine {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self { Self { layers: Layers::new() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn set_layers(&mut self, layers: Layers) { self.layers = layers }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     pub fn add_layer(&mut self, label: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn remove_layer(&mut self, label: String) { self.layers.remove(&label); }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn get_layer(&self, label: &str) -> Option<&Layer> { self.layers.get(label) }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 20 |
[INFO] [stdout] 21 |     pub fn get_layer_mut(&mut self, label: &str)  -> Option<&mut Layer> { self.layers.get_mut(label) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]  --> src/core/renderer.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Renderer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:92:69
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn nearest_left(&mut self, x: f32, y: f32, points: &[Vec3], N: usize) -> anyhow::Result<usize> {
[INFO] [stdout]    |                                                                     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let N = points.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |             let M = vertexpath.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let N = points.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let mut T: Option<SegmentBinTree> = None;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:90:35
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn apply_transform(&mut self, matrix: &Mat4) {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:547:29
[INFO] [stdout]     |
[INFO] [stdout] 547 |                         let M = monotonic_pol_points.len();
[INFO] [stdout]     |                             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn rotate(&mut self, angle: f32) {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |                     let N = vxs.len() as u32;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let N = vxs.len() as u32;
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Engine` is never constructed
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Engine {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_layers`, `add_layer`, `remove_layer`, `get_layer`, and `get_layer_mut` are never used
[INFO] [stdout]   --> src/core/graphics2d/engine.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Engine {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self { Self { layers: Layers::new() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn set_layers(&mut self, layers: Layers) { self.layers = layers }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     pub fn add_layer(&mut self, label: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn remove_layer(&mut self, label: String) { self.layers.remove(&label); }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn get_layer(&self, label: &str) -> Option<&Layer> { self.layers.get(label) }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 20 |
[INFO] [stdout] 21 |     pub fn get_layer_mut(&mut self, label: &str)  -> Option<&mut Layer> { self.layers.get_mut(label) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]  --> src/core/renderer.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Renderer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:92:69
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn nearest_left(&mut self, x: f32, y: f32, points: &[Vec3], N: usize) -> anyhow::Result<usize> {
[INFO] [stdout]    |                                                                     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let N = points.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |             let M = vertexpath.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let N = points.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let mut T: Option<SegmentBinTree> = None;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:547:29
[INFO] [stdout]     |
[INFO] [stdout] 547 |                         let M = monotonic_pol_points.len();
[INFO] [stdout]     |                             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |                     let N = vxs.len() as u32;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let N = vxs.len() as u32;
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3A` and `Vec2`
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{Mat3A, Mat4, Vec2, Vec3};
[INFO] [stdout]   |            ^^^^^        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventLoopClosed`
[INFO] [stdout]  --> src/main.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event_loop::{ControlFlow, EventLoop, EventLoopClosed, EventLoopProxy};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::io::AsyncWriteExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceId` and `TouchPhase`
[INFO] [stdout]  --> src/app_setup.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::{DeviceId, KeyEvent, MouseScrollDelta, TouchPhase, WindowEvent};
[INFO] [stdout]   |                    ^^^^^^^^                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/app_setup.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winit::event_loop::{ActiveEventLoop, ControlFlow};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicContour` and `Contour`
[INFO] [stdout]   --> src/app_setup.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::vis_geometry::contour::{BasicContour, Contour};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::triangulation::triangulate_2d`
[INFO] [stdout]   --> src/app_setup.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::vis_geometry::triangulation::triangulate_2d;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `DMat4`, `Mat3A`, and `Mat3`
[INFO] [stdout]  --> src/core/vis_geometry/contour.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, DMat4, Mat3, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/vis_geometry/contour.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout]     |                                ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout] 147 +     fn box_clone(&self) -> Box<dyn Contour + 'static > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deref` and `RemAssign`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, RemAssign};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{Vec2, Vec3, Vec3Swizzles};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -                     if (x.id == other_id) {
[INFO] [stdout] 60 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                     if (x.id == other_id) {
[INFO] [stdout] 78 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let v = (point_st - point_end);
[INFO] [stdout]    |                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -             let v = (point_st - point_end);
[INFO] [stdout] 96 +             let v = point_st - point_end ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `Affine3A`, and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Affine3A, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contour`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::vis_geometry::{contour, Vertex};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Affine2, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/graphics2d/layer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Mat3A, Mat4};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use core::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mat3A` and `Vec2`
[INFO] [stdout]  --> src/main.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use glam::{Mat3A, Mat4, Vec2, Vec3};
[INFO] [stdout]   |            ^^^^^        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventLoopClosed`
[INFO] [stdout]  --> src/main.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event_loop::{ControlFlow, EventLoop, EventLoopClosed, EventLoopProxy};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tokio::io::AsyncWriteExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceId` and `TouchPhase`
[INFO] [stdout]  --> src/app_setup.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winit::event::{DeviceId, KeyEvent, MouseScrollDelta, TouchPhase, WindowEvent};
[INFO] [stdout]   |                    ^^^^^^^^                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ControlFlow`
[INFO] [stdout]  --> src/app_setup.rs:6:42
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winit::event_loop::{ActiveEventLoop, ControlFlow};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicContour` and `Contour`
[INFO] [stdout]   --> src/app_setup.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::vis_geometry::contour::{BasicContour, Contour};
[INFO] [stdout]    |                                          ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::triangulation::triangulate_2d`
[INFO] [stdout]   --> src/app_setup.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::core::vis_geometry::triangulation::triangulate_2d;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `DMat4`, `Mat3A`, and `Mat3`
[INFO] [stdout]  --> src/core/vis_geometry/contour.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, DMat4, Mat3, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/vis_geometry/contour.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout]     |                                ^                     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 -     fn box_clone(&self) -> Box<(dyn Contour + 'static)> {
[INFO] [stdout] 147 +     fn box_clone(&self) -> Box<dyn Contour + 'static > {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deref` and `RemAssign`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, RemAssign};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | use glam::{Vec2, Vec3, Vec3Swizzles};
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]  --> src/core/vis_geometry/triangulation.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -                     if (x.id == other_id) {
[INFO] [stdout] 60 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     if (x.id == other_id) {
[INFO] [stdout]    |                        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 78 -                     if (x.id == other_id) {
[INFO] [stdout] 78 +                     if x.id == other_id  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:96:21
[INFO] [stdout]    |
[INFO] [stdout] 96 |             let v = (point_st - point_end);
[INFO] [stdout]    |                     ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 96 -             let v = (point_st - point_end);
[INFO] [stdout] 96 +             let v = point_st - point_end ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2`, `Affine3A`, and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Affine3A, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `contour`
[INFO] [stdout]  --> src/core/vis_geometry/render_object.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::vis_geometry::{contour, Vertex};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glam::{Affine2, Mat3A, Mat4, Vec3};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Affine2` and `Mat3A`
[INFO] [stdout]  --> src/core/graphics2d/layer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use glam::{Affine2, Mat3A, Mat4};
[INFO] [stdout]   |            ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::*`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use core::*;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::vis_geometry::Vertex`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::core::vis_geometry::Vertex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let mut event_loop = EventLoop::with_user_event().build()?;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut proxy = event_loop.create_proxy();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let mut event_loop = EventLoop::with_user_event().build()?;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let mut proxy = event_loop.create_proxy();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:77:60
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                                                            ----^^^^^
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]   --> src/app_setup.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/app_setup.rs:116:52
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 delta: MouseScrollDelta::LineDelta(dx, dy),
[INFO] [stdout]     |                                                    ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |mut r, contour| {
[INFO] [stdout]    |              ----^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:90:35
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn apply_transform(&mut self, matrix: &Mat4) {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn rotate(&mut self, angle: f32) {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn runner(mut proxy: EventLoopProxy<StateUpdate>) {
[INFO] [stdout]    |           ----^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_special_zoom` is never used
[INFO] [stdout]    --> src/core/core.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl State {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn set_special_zoom(&mut self, zoom: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Square`, `Rectangle`, and `Triangle` are never constructed
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum BasicContourShape {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 21 |     /// square 1*1
[INFO] [stdout] 22 |     Square,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 23 |     /// rectangle with width=1 and height=param
[INFO] [stdout] 24 |     Rectangle(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Triangle(f32, f32),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BasicContourShape` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let mut window_attributes = Window::default_attributes();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NaiveContour` is never constructed
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct NaiveContour {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl NaiveContour {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn new(shape: Vec<Vec<Vec3>>, matrix: Mat4) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BoxClone` is never used
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait BoxClone {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply_transform` and `rotate` are never used
[INFO] [stdout]   --> src/core/vis_geometry/gentraits.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait AffineTransformable {
[INFO] [stdout]    |           ------------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn apply_transform(&mut self, matrix: &Mat4);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     fn rotate(&mut self, angle: f32);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title`, `get_queue`, `get_queue_mut`, `pop_first`, and `pop` are never used
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Layer {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn title(&self) -> &Option<String> { &self.title }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_queue(&self) -> &BTreeMap<i64, Box<dyn InLayerRenderObject >> { &self.queue }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 60 |     
[INFO] [stdout] 61 |     pub fn get_queue_mut(&mut self) -> &mut BTreeMap<i64, Box<dyn InLayerRenderObject>> { &mut self.queue }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn pop_first(&mut self) -> Option<(i64, Box<dyn InLayerRenderObject>)> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn pop(&mut self, key: i64) -> Option<Box<dyn InLayerRenderObject>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Layers` is never used
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:120:10
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub type Layers = HashMap<String, Layer>;
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Engine` is never constructed
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Engine {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_layers`, `add_layer`, `remove_layer`, `get_layer`, and `get_layer_mut` are never used
[INFO] [stdout]   --> src/core/graphics2d/engine.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Engine {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self { Self { layers: Layers::new() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn set_layers(&mut self, layers: Layers) { self.layers = layers }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     pub fn add_layer(&mut self, label: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn remove_layer(&mut self, label: String) { self.layers.remove(&label); }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn get_layer(&self, label: &str) -> Option<&Layer> { self.layers.get(label) }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 20 |
[INFO] [stdout] 21 |     pub fn get_layer_mut(&mut self, label: &str)  -> Option<&mut Layer> { self.layers.get_mut(label) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]  --> src/core/renderer.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Renderer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `K` should have a snake case name
[INFO] [stdout]   --> src/main.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let K = 128;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `k`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:92:69
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn nearest_left(&mut self, x: f32, y: f32, points: &[Vec3], N: usize) -> anyhow::Result<usize> {
[INFO] [stdout]    |                                                                     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let N = points.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |             let M = vertexpath.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let N = points.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let mut T: Option<SegmentBinTree> = None;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:547:29
[INFO] [stdout]     |
[INFO] [stdout] 547 |                         let M = monotonic_pol_points.len();
[INFO] [stdout]     |                             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |                     let N = vxs.len() as u32;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let N = vxs.len() as u32;
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/app_setup.rs:77:60
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                                                            ----^^^^^
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event_loop`
[INFO] [stdout]   --> src/app_setup.rs:77:30
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn user_event(&mut self, event_loop: &ActiveEventLoop, mut event: StateUpdate) {
[INFO] [stdout]    |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/app_setup.rs:116:52
[INFO] [stdout]     |
[INFO] [stdout] 116 |                 delta: MouseScrollDelta::LineDelta(dx, dy),
[INFO] [stdout]     |                                                    ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:502:17
[INFO] [stdout]     |
[INFO] [stdout] 502 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:53:14
[INFO] [stdout]    |
[INFO] [stdout] 53 |             |mut r, contour| {
[INFO] [stdout]    |              ----^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:86:33
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn set_transform(&mut self, matrix: Mat4) {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:90:35
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn apply_transform(&mut self, matrix: &Mat4) {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:94:26
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn rotate(&mut self, angle: f32) {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn runner(mut proxy: EventLoopProxy<StateUpdate>) {
[INFO] [stdout]    |           ----^^^^^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_special_zoom` is never used
[INFO] [stdout]    --> src/core/core.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl State {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn set_special_zoom(&mut self, zoom: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Square`, `Rectangle`, and `Triangle` are never constructed
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum BasicContourShape {
[INFO] [stdout]    |          ----------------- variants in this enum
[INFO] [stdout] 21 |     /// square 1*1
[INFO] [stdout] 22 |     Square,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 23 |     /// rectangle with width=1 and height=param
[INFO] [stdout] 24 |     Rectangle(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Triangle(f32, f32),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BasicContourShape` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NaiveContour` is never constructed
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct NaiveContour {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/core/vis_geometry/contour.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl NaiveContour {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn new(shape: Vec<Vec<Vec3>>, matrix: Mat4) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BoxClone` is never used
[INFO] [stdout]  --> src/core/vis_geometry/gentraits.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait BoxClone {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply_transform` and `rotate` are never used
[INFO] [stdout]   --> src/core/vis_geometry/gentraits.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait AffineTransformable {
[INFO] [stdout]    |           ------------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn apply_transform(&mut self, matrix: &Mat4);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     fn rotate(&mut self, angle: f32);
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `title`, `get_queue`, `get_queue_mut`, `pop_first`, and `pop` are never used
[INFO] [stdout]   --> src/core/graphics2d/layer.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Layer {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn title(&self) -> &Option<String> { &self.title }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_queue(&self) -> &BTreeMap<i64, Box<dyn InLayerRenderObject >> { &self.queue }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 60 |     
[INFO] [stdout] 61 |     pub fn get_queue_mut(&mut self) -> &mut BTreeMap<i64, Box<dyn InLayerRenderObject>> { &mut self.queue }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn pop_first(&mut self) -> Option<(i64, Box<dyn InLayerRenderObject>)> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn pop(&mut self, key: i64) -> Option<Box<dyn InLayerRenderObject>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Layers` is never used
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:120:10
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub type Layers = HashMap<String, Layer>;
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Engine` is never constructed
[INFO] [stdout]  --> src/core/graphics2d/engine.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Engine {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_layers`, `add_layer`, `remove_layer`, `get_layer`, and `get_layer_mut` are never used
[INFO] [stdout]   --> src/core/graphics2d/engine.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Engine {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self { Self { layers: Layers::new() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn set_layers(&mut self, layers: Layers) { self.layers = layers }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 12 |
[INFO] [stdout] 13 |     pub fn add_layer(&mut self, label: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn remove_layer(&mut self, label: String) { self.layers.remove(&label); }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 18 |
[INFO] [stdout] 19 |     pub fn get_layer(&self, label: &str) -> Option<&Layer> { self.layers.get(label) }
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 20 |
[INFO] [stdout] 21 |     pub fn get_layer_mut(&mut self, label: &str)  -> Option<&mut Layer> { self.layers.get_mut(label) }
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Renderer` is never constructed
[INFO] [stdout]  --> src/core/renderer.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Renderer {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `K` should have a snake case name
[INFO] [stdout]   --> src/main.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let K = 128;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `k`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/triangulation.rs:92:69
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn nearest_left(&mut self, x: f32, y: f32, points: &[Vec3], N: usize) -> anyhow::Result<usize> {
[INFO] [stdout]    |                                                                     ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:169:17
[INFO] [stdout]     |
[INFO] [stdout] 169 |             let N = points.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |             let M = vertexpath.len();
[INFO] [stdout]     |                 ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:332:9
[INFO] [stdout]     |
[INFO] [stdout] 332 |     let N = points.len();
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:334:13
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let mut T: Option<SegmentBinTree> = None;
[INFO] [stdout]     |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `M` should have a snake case name
[INFO] [stdout]    --> src/core/vis_geometry/triangulation.rs:547:29
[INFO] [stdout]     |
[INFO] [stdout] 547 |                         let M = monotonic_pol_points.len();
[INFO] [stdout]     |                             ^ help: convert the identifier to snake case: `m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/core/vis_geometry/render_object.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |                     let N = vxs.len() as u32;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]    --> src/core/graphics2d/layer.rs:107:25
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let N = vxs.len() as u32;
[INFO] [stdout]     |                         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca", kill_on_drop: false }`
[INFO] [stdout] b16db90ca152929bdb167b285d4f0a4934b750c476a5aaf2ffe40c6fe5484dca
